//////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////
#include <vector>
#include <map>
#include "../CompositeObject/CompositeObject.h"
//////////////////////////////////////////////////////////////////////////
namespace pugi
{
	class xml_node;
}
//////////////////////////////////////////////////////////////////////////
class b2World;
class Scene: public CompositeObject
{
public:
	Scene(const char* xmlPath);
	virtual ~Scene();

	void update(float dt);
	void createPhysWorld();	

private:
	void				parseXml(const char* xmlPath);
	CompositeObject*	loadXmlNode(pugi::xml_node* xmlNode);
	CompositeObject*	createSprite(pugi::xml_node* xmlNode);
	CompositeObject*	createGameObject(pugi::xml_node* xmlNode);
	void				addNodeCommonParams(CompositeObject* node, pugi::xml_node* xmlNode);

private:
	b2World*							m_physWorld;
	float								m_physDeltaTime;
};